package com.lifeverse.dto;

import com.lifeverse.entity.enums.LifeEntityType;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;

/**
 * 创建生命体请求DTO
 */
@Data
@Schema(description = "创建生命体请求")
public class LifeEntityCreateDTO {

    @NotBlank(message = "生命体名称不能为空")
    @Size(max = 100, message = "生命体名称长度不能超过100个字符")
    @Schema(description = "生命体名称", example = "智慧企业001", required = true)
    private String name;

    @NotNull(message = "生命体类型不能为空")
    @Schema(description = "生命体类型", example = "CORPORATE", required = true)
    private LifeEntityType type;

    @Size(max = 1000, message = "描述长度不能超过1000个字符")
    @Schema(description = "生命体描述", example = "这是一个专注于创新的企业生命体")
    private String description;

    @Schema(description = "父生命体ID", example = "2")
    private Long parentId;

    @Schema(description = "生命体配置（JSON格式）")
    private String configuration;

    @Schema(description = "生命体元数据（JSON格式）")
    private String metadata;
}